Skip to content

00 为什么要学习 Linux 系统

Linux 系统简介

Linux 系统

  • Linux 内核最初只是由芬兰人 李纳斯·托瓦兹(Linus Torvalds) 在赫尔辛基大学上学时出于个人爱好而编写的。
  • Linux 是一套免费使用和自由传播的类 Unix 操作系统,是一个基于 POSIX 和 UNIX 的多用户、多任务、支持多线程和多 CPU 的操作系统。
  • Linux 能运行主要的 UNIX 工具软件、应用程序和网络协议。它支持 32 位和 64 位硬件。Linux 继承了 Unix 以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。

Linux 应用领域

今天各种场合都有使用各种 Linux 发行版,从嵌入式设备到超级计算机,并且在服务器领域确定了地位,通常服务器使用 LAMP(Linux + Apache + MySQL + PHP)或 LNMP(Linux + Nginx+ MySQL + PHP)组合。

目前 Linux 不仅在家庭与企业中使用,并且在政府中也很受欢迎。

  • 巴西联邦政府由于支持 Linux 而世界闻名。
  • 有新闻报道俄罗斯军队自己制造的 Linux 发布版的,做为 G.H.ost 项目已经取得成果。
  • 印度的 Kerala 联邦计划在向全联邦的高中推广使用 Linux。
  • 中华人民共和国为取得技术独立,在龙芯过程中排他性地使用 Linux。
  • 在西班牙的一些地区开发了自己的 Linux 发布版,并且在政府与教育领域广泛使用,如 Extremadura 地区的 gnuLinEx 和 Andalusia 地区的 Guadalinex。
  • 葡萄牙同样使用自己的 Linux 发布版 Caixa Mágica,用于 Magalh?es 笔记本电脑和 e-escola 政府软件。
  • 法国和德国同样开始逐步采用 Linux。

Linux vs Window

目前国内 Linux 更多的是应用于服务器上,而桌面操作系统更多使用的是 Window。主要区别如下:

比较WindowsLinux
界面界面统一,外壳程序固定所有 Windows 程序菜单几乎一致,快捷键也几乎相同图形界面风格依发布版不同而不同,可能互不兼容。GNU/Linux 的终端机是从 UNIX 传承下来,基本命令和操作方法也几乎一致。
驱动程序驱动程序丰富,版本更新频繁。默认安装程序里面一般包含有该版本发布时流行的硬件驱动程序,之后所出的新硬件驱动依赖于硬件厂商提供。对于一些老硬件,如果没有了原配的驱动有时很难支持。另外,有时硬件厂商未提供所需版本的 Windows 下的驱动,也会比较头痛。由志愿者开发,由 Linux 核心开发小组发布,很多硬件厂商基于版权考虑并未提供驱动程序,尽管多数无需手动安装,但是涉及安装则相对复杂,使得新用户面对驱动程序问题(是否存在和安装方法)会一筹莫展。但是在开源开发模式下,许多老硬件尽管在 Windows 下很难支持的也容易找到驱动。HP、Intel、AMD 等硬件厂商逐步不同程度支持开源驱动,问题正在得到缓解。
使用使用比较简单,容易入门。图形化界面对没有计算机背景知识的用户使用十分有利。图形界面使用简单,容易入门。文字界面,需要学习才能掌握。
学习系统构造复杂、变化频繁,且知识、技能淘汰快,深入学习困难。系统构造简单、稳定,且知识、技能传承性好,深入学习相对容易。
软件每一种特定功能可能都需要商业软件的支持,需要购买相应的授权。大部分软件都可以自由获取,同样功能的软件选择较少。

Linux 系统发展史

  • 1984 年,Richard Stallman 发起了 GNU 源代码开放计划并制定了著名的 GPL 许可协议。
  • 1987 年,GNU 计划获得了一项重大突破—gcc 编译器发布,这使得程序员可以基于该编译器编写出属于自己的开源软件。
  • 1991 年 10 月,芬兰赫尔辛基大学的在校生 Linus Torvalds 编写了一款名为 Linux 的操作系统。该系统因其较高的代码质量且基于 GNU GPL 许可协议的开放源代码特性,迅速得到了 GNU 计划和一大批黑客程序员的支持。
  • 1994 年 1 月,Bob Young 在 Linux 系统内核的基础之上,集成了众多的源代码和程序软件,发布了红帽系统并开始出售技术服务,这进一步推动了 Linux 系统的普及。
  • 1998 年以后,随着 GNU 源代码开放计划和 Linux 系统的继续火热,以 IBM 和 Intel 为首的多家 IT 企业巨头开始大力推动开放源代码软件的发展。
  • 2021 年初,Linux 内核已经发展到了 5.10 版本,并且 Linux 系统版本也有数百个之多,但它们依然都使用 Linus Torvalds 开发、维护的 Linux 系统内核。RedHat 公司也成为了开源行业及 Linux 系统的带头公司。

Linux 的发行版

Linux 的发行版说简单点就是将 Linux 内核与应用软件做一个打包。

img

目前市面上较知名的发行版有:Ubuntu、RedHat、CentOS、Debian、Fedora、SuSE、OpenSUSE、Arch Linux、SolusOS 等。

img

RHEL

红帽企业版 Linux 最初于 2002 年 3 月面世,当年 Dell、HP、Oracle 以及 IBM 公司便纷纷表示支持该系统平台的硬件开发,因此红帽企业版 Linux 系统的市场份额在近 20 年时间内不断猛增。红帽企业版 Linux 当时是全世界使用最广泛的 Linux 系统之一,在世界 500 强企业中,所有的航空公司、电信服务提供商、商业银行、医疗保健公司均无一例外地通过该系统向外提供服务。

红帽企业版 Linux 当前的最新版本是 RHEL 8,该系统具有极强的稳定性,在全球范围内都可以获得完善的技术支持。该系统也是本书和红帽认证考试中默认使用的操作系统。

CentOS

顾名思义,CentOS 是由开源社区研发和维护的一款企业级 Linux 操作系统,在 2014 年 1 月被红帽公司正式收购。CentOS 系统最为别人广泛熟悉的标签就是 "免费" 。如果您问一个运维 "老鸟" 选择 CentOS 系统的理由,他绝对不会跟你说更安全或更稳定,而只是说两个字—免费!由于红帽企业版 Linux 是开源软件,任何人都有修改和创建衍生品的权利,因此 CentOS 便是将红帽企业版 Linux 中的收费功能通通去掉,然后将新系统重新编译后发布给用户免费使用的 Linux 系统。也正因为其免费的特性,CentOS 拥有了广泛的用户。

从本质上来说,由于 CentOS 是针对红帽企业版 Linux 进行修改后再发布的版本,因此不会针对它单独开发新功能,CentOS 的版本号也是随红帽企业版 Linux 而变更。例如,CentOS 8.0 对应的就是 RHEL 8.0,CentOS 8.1 对应的就是 RHEL 8.1;以此类推。再就是,CentOS 系统和 RHEL 系统的软件包可以通用。也就是说,如果工作中用的是 RHEL,但是在安装某款软件时只找到了该软件的 CentOS 系统软件源,也是可以正常安装该软件的。

Fedora

Fedora 翻译为中文是 "浅顶软呢男帽" 的意思,翻译之后跟 Linux 系统很不搭界,所以更多人干脆将其音译为 "费多拉" 系统。Fedora Linux 是正正经经的红帽公司自己的产品,最初是为了给红帽企业版 Linux 制作和测试第三方软件而构建的产品,孕育了最早的开源社群,固定每 6 个月发布一个新版本,当前在全球已经有几百万的用户。

Fedora 是桌面版本的 Linux 系统,可以理解成是微软公司的 Windows XP 或者 Windows 10。它的目标用户是应付日常的工作需要,而不会追求稳定性的人群。用户可以在这个系统中体验到最新的技术和工具,当这些技术和工具成熟后才会被移植到红帽企业版 Linux 中,因此 Fedora 也被称为 RHEL 系统的 "试验田" 。运维人员如果想每天都强迫自己多学点 Linux 知识,保持自己技术的领先性,就应该多关注此类 Linux 系统的发展变化和新特征,不断调整自己的学习方向。

Debian

一款基于 GNU 开源许可证的 Linux 系统,历史久远,最初发布于 1993 年 9 月。Debian 的名字取自创始人 Ian Murdock 和他女朋友 Debra 的姓氏组合。在维基百科中,Debian 被翻译为 "蝶变" 系统,多么浪漫而富有诗意的名字。但可惜国内的用户不买账,看着 Logo 一圈一圈的形状,硬生生地将经念歪了。这么多年下来,现在反而很少有人听说过蝶变系统这个名字了。

Debian 系统具有很强的稳定性和安全性,并且提供了免费的基础支持,可以良好地适应各种硬件架构,以及提供近十万种不同的开源软件,在国外拥有很高的认可度和使用率。虽然 Debian 也是基于 Linux 内核,但是在实际操作中还是跟红帽公司的产品有一些差别,例如 RHEL 7 和 RHEL 8 分别使用 Yum 和 DNF 工具来安装软件,而 Debian 使用的则是 APT 工具。

Ubuntu

ubuntu 是一款桌面版 Linux 系统,以 Debian 为蓝本进行修改和衍生而来,发布周期为 6 个月。Ubuntu 的中文音译为 "乌班图",这个词最初来自于非洲南部部落使用的祖鲁语,意思是 "我的存在是因为大家的存在",体现了一种谦卑、感恩的价值观,寓意非常好。

Ubuntu 系统的第一个版本发布于 2004 年 10 月。2005 年 7 月,Ubuntu 基金会成立,Ubuntu 后续不断增加开发分支,有了桌面版系统、服务器版系统和手机版系统。据调查,Ubuntu 最高峰时的用户达到了 10 亿人。尽管 Ubuntu 基于 Debian 系统衍生而来,但会对系统进行深度化定制,因此两者之间的软件并不一定完全兼容。Ubuntu 系统现在由 Canonical 公司提供商业技术支持,只要购买付费技术支持服务就能获得帮助,桌面版系统最长时间 3 年,服务器版系统最长时间 5 年。

openSUSE

一款源自德国的 Linux 系统,在全球范围内有着不错的声誉及市场占有率。openSUSE 的桌面版系统简洁轻快易于使用,而服务器版本则功能丰富极具稳定性,而且即便是 "菜鸟" 也能轻松上手。虽然 openSUSE 在技术上颇具优势,而且大大的绿色蜥蜴 Logo 人见人爱,只可惜命途多舛,赞助和研发该系统的 SuSE Linux AG 公司由于效益不佳,于 2003 年被 Novell 公司收购,而 Novell 公司又因经营不佳而在 2011 年被 Attachmate 公司收购。而到了 2014 年,Attachmate 公司又被 Micro Focus 公司收购,后者仍然只把维护 openSUSE 系统的团队当作公司内的一个部门来运营。

即便如此,依然不妨碍 openSUSE 系统的坚强发展,用户可以完全自主选择要使用的软件。例如,针对 GUI 环境,就提供了诸如 GNOME、KDE、Cinnamon、MATE、LXQt、Xfce 等可选项;除此之外,还为用户提供了数千个免费开源的软件包。

Kali

这款系统一般是供黑客或安全人员使用的,能够以此为平台对网站进行渗透测试,通俗来讲就是能 "攻击" 网站。Kali Linux 系统的前身名为 BackTrack,其设计用途就是进行数字鉴识和渗透测试,内置有 600 多款网站及系统的渗透测试软件,包括大名鼎鼎的 Nmap、Wireshark、sqlmap 等。Kali Linux 能够被安装到个人电脑、公司服务器,甚至手掌大小的树莓派(一款微型电脑)上,可以让人有一种随身携带了一个武器库的感觉。

Gentoo

Gentoo 翻译为中文是 "巴布亚企鹅" 。巴布亚企鹅是企鹅家族中体型最大的物种之一,游泳时速最快可达 36 千米—多么灵活的胖子!

Gentoo 系统最大的特色就是允许用户完全自由地进行定制。开发人员 Daniel 曾经说过:"Gentoo 系统的设计出发点就是让用户随意使用,没有限制地使用 "。只要理解了这句话,后面也就不需要再解释什么了。在 Gentoo 系统中,任何一部分功能(包括最基本的系统库和编译器)都允许用户重新编译;用户也可以选择喜欢的补丁或者插件进行定制。但是,也因为 Gentoo 极高的自定制性,导致操作复杂,因此仅适合有经验的运维人员使用。

如果大家今后真的安装了 Gentoo 系统,千万别忘记试一下 Portage 工具。这款软件管理工具以模块化、可移植、易维护和灵活性而著称,几乎可以无限制地适应用户的计算机硬件。

Deepin

Deepin 系统是由武汉深之度科技有限公司于 2011 年基于 Debian 系统衍生而来的,提供 32 种语言版本,目前累计下载量已近 1 亿次,用户遍布 100 余个国家/地区。

就 Deepin 来讲,最吸引人的还是它的本土化工作。Deepin 默认集成了诸如 WPS Office、搜狗输入法、有道词典等国内常用的软件,对 "小白" 用户相当友好。当然,Deepin 的技术研发能力相较于国际水平肯定还有差距,这点我们也要承认并正视。

开源精神和 Linux 系统

开源软件对比闭源软件的优势

  • 低风险:使用闭源软件无疑把命运交付给他人,一旦封闭的源代码没有人来维护,您将进退维谷。而且相较于商业软件公司,开源社区很少存在倒闭的问题。并且,源代码一旦公布于世,任何人或组织都可以接手进行新的维护工作。
  • 高品质:相较于闭源软件产品,开源项目通常是由开源社区来研发及维护的,参与编写、维护、测试的用户数量众多,一般的 bug 还没有等暴发就已经被修补。另外,在灵感不断碰撞、代码不断迭代的交流氛围中,程序员也不可能将 "半成品" 上传到开源社区中。
  • 低成本:开源工作者大多都是在幕后默默且无偿地付出劳动成果,为美好的世界贡献一份力量,因此使用开源社区推动的软件项目可以节省大量的人力、物力和财力。
  • **更透明:**没有哪个笨蛋会把木马或后门代码放到开源项目中,这样无疑是把自己的罪行暴露在阳光之下,很容易被他人发现。

常见的开源许可

截至目前,世界上已经有 100 多种被开源促进组织(OSI,Open Source Initiative)确认的开源许可证,用于保护开源工作者的权益。

  • GNU GPL(GNU General Public License,GNU 通用公共许可证):只要软件中包含了遵循 GPL 协议的产品或代码,该软件就必须也遵循 GPL 许可协议且开源、免费,因此这个协议并不适合商用软件。遵循该协议的开源软件数量极其庞大,包括 Linux 系统在内的大多数的开源软件都是基于这个协议的。
  • BSD(Berkeley Software Distribution,伯克利软件发布版)许可协议:用户可以使用、修改和重新发布遵循该许可的软件,并且可以将软件作为商业软件发布和销售。
  • Apache 许可证版本(Apache License Version)许可协议:在为开发人员提供版权及专利许可的同时,允许用户拥有修改代码及再发布的自由。该许可协议适用于商业软件,现在热门的 Hadoop、Apache HTTP Server、MongoDB 等项目都是基于该许可协议研发的。
  • MIT(Massachusetts Institute of Technology)许可协议:目前限制最少的开源许可协议之一,只要程序的开发者在修改后的源代码中保留原作者的许可信息即可,因此普遍被商业软件所使用。

乌克兰程序员 Paul Bagwell 创作的一幅流程图对常见开源许可证进行了汇总归纳,具体如下图所示。

开源协议选择流程图

GPL

GNU 通用公共许可证(General Public License,GPL):目前广泛使用的开源软件许可协议之一,用户享有运行、学习、共享和修改软件的自由。GPL 最初是自由软件基金会创始人 Richard Stallman 起草的,其版本目前已经发展到了第 3 版。GPL 的目的是保证程序员在开源社区中所做的工作对整个世界是有益的,所开发的软件也是自由的,并极力避免开源软件被私有化以及被无良软件公司所剥削。

现在,只要软件中包含了遵循 GPL 许可证的产品或代码,该软件就必须开源、免费,因此这个许可证并不适合商业收费软件。遵循该许可证的开源软件数量极其庞大,包括 Linux 内核在内的大多数的开源软件都是基于 GPL 许可证的。GPL 赋予了用户著名的五大自由。

特点

  • 使用自由:允许用户根据需要自由使用这个软件。
  • 复制自由:允许把软件复制到任何人的计算机中,并且不限制复制的数量。
  • 修改自由:允许开发人员增加或删除软件的功能,但软件修改后必须依然基于 GPL 许可证。
  • 衍生自由:允许用户深度定制化软件后,为软件注册自己的新商标,再发行衍生品的自由。
  • 收费自由:允许在各种媒介上出售该软件,但必须提前让买家知道这个软件是可以免费获得的。因此,一般来讲,开源软件都是通过为用户提供有偿服务的形式来营利的。

LGPL

较宽松通用公共许可证(Lesser GPL, LGPL):一个主要为保护类库权益而设计的 GPL 开源协议。与标准 GPL 许可证相比,LGPL 允许商业软件以类库引用的方式使用开源代码,而不用将其产品整体开源,因此普遍被商业软件用来引用类库代码。简单来说,就是针对使用了基于 LGPL 许可证的开源代码,在涉及这部分代码,以及修改过或者衍生出来的代码时,都必须继续采用 LGPL 协议,除此以外的其他代码则不强制要求。

如果您觉得 LGPL 许可证更多地是关注对类库文件的保护,而不是软件整体,那就对了。因为该许可证最早的名字是 Library GPL,即 GPL 类库开源许可证,保护的对象有 glibc、GTK widget toolkit 等类库文件。

BSD

伯克利软件发布版(Berkeley Software Distribution, BSD)许可证:另一款被广泛使用的开源软件许可协议。相较于 GPL 许可证,BSD 更加宽松,适合于商业用途。用户可以使用、修改和重新发布遵循该许可证的软件,并且可以将软件作为商业软件发布和销售,前提是需要满足下面 3 个条件。

条件

  • 如果再发布的软件中包含开源代码,则源代码必须继续遵循 BSD 许可证。
  • 如果再发布的软件中只有二进制程序,则需要在相关文档或版权文件中声明原始代码遵循了 BSD 许可证。
  • 不允许用原始软件的名字、作者名字或机构名称进行市场推广。

Apache

Apache 许可证(Apache License):顾名思义,是由 Apache 软件基金会负责发布和维护的开源许可协议。作为当今世界上最大的开源基金会,Apache 不仅因此协议而出名,还因市场占有率第一的 Web 服务器软件而享誉行业。目前使用最广泛的 Apache 许可证是 2004 年发行的 2.0 版本,它在为开发人员提供版权及专利许可的同时,还允许用户拥有修改代码及再发布的自由。该许可证非常适合用于商业软件,现在热门的 Hadoop、Apache HTTP Server、MongoDB 等项目都是基于该许可证研发的。程序开发人员在开发遵循该许可证的软件时,要严格遵守下面 4 个条件。

条件

  • 该软件及其衍生品必须继续使用 Apache 许可证。
  • 如果修改了程序源代码,需要在文档中进行声明。
  • 若软件是基于他人的源代码编写而成的,则需要保留原始代码的许可证、商标、专利声明及原作者声明的其他内容信息。
  • 如果再发布的软件中有声明文件,则需在此文件中注明基于了 Apache 许可证及其他许可证。

MIT

MIT 许可证(Massachusetts Institute of Technology License):源于麻省理工学院,又称为 X11 协议。MIT 许可证是目前限制最少的开源许可证之一,用户可以使用、复制、修改、再发布软件,而且只要在修改后的软件源代码中保留原作者的许可信息即可,因此普遍被商业软件(例如 jQuery 与 Node.js)所使用。也就是说,MIT 许可证宽松到一个新境界,即用户只要在代码中声明了 MIT 许可证和版权信息,就可以去做任何事情,而无须承担任何责任。

MPL

Mozilla 公共许可证(Mozilla Public License,MPL):于 1998 年初由 Netscape 公司的 Mozilla 小组设计,原因是它们认为 GPL 和 BSD 许可证不能很好地解决开发人员对源代码的需求和收益之间的平衡关系,因此便将这两个协议进行融合,形成了 MPL。2012 年年初,Mozilla 基金会发布了 MPL 2.0 版本(目前为止也是最新的版本),后续被用在 Firefox、Thunderbird 等诸多产品上。

特点

  • 在使用基于 MPL 许可证的源代码时,后续只需要继续开源这部分特定代码即可,新研发的软件不用完全被该许可证控制。
  • 开发人员可以将基于 MPL、GPL、BSD 等多种许可证的代码一起混合使用。
  • 开发人员在发布新软件时,必须附带一个专门用于说明该程序的文件,内容要有原始代码的修改时间和修改方式。

红帽系统及红帽认证

RedHat 公司

红帽公司成立于 1993 年,是全球首家收入超 10 亿美元的开源公司,总部位于美国,分支机构遍布全球。红帽公司作为全球领先的开源和 Linux 系统提供商,其产品已被业界广泛认可并使用,尤其是 RHEL 系统在业内拥有超高的 Linux 系统市场占有率。红帽公司除了提供操作系统之外,还提供了虚拟化、中间件、应用程序、管理和面向服务架构的解决方案。

红帽认证

红帽认证是由红帽公司推出的 Linux 认证,该认证被认为是 Linux 行业乃至整个 IT 领域价值最高的认证之一。红帽认证考试全部采用上机形式,在考察学生基础理论能力的同时还考察了实践动手操作以及排错能力。红帽公司针对红帽认证制定了完善的专业评估与认证标准,其认证主要包括红帽认证系统管理员(RHCSA,Red Hat Certified System Administrator)、红帽认证工程师(RHCE,Red Hat Certified Engineer)与红帽认证架构师(RHCA,Red Hat Certified Architect)。

红帽认证考试的形式为上机实操,且在一天内考完。上午的 RHCSA 认证的考试时长是 2.5 小时,对应的是 RH124 和 RH134 的课程内容,下午的 RHCE 认证的考试时长是 3.5 小时,对应的是 RH294 课程内容。两门考试的成绩通常会在考试结束后的 72 小时内公布。RHCSA 和 RHCE 认证考试的满分均为 300 分,达到 210 分为合格,会连同成绩和电子证书发送到考试邮箱中。

RHCSA

红帽认证系统管理员属于 Linux 系统的初级认证,比较适合 Linux 爱好者。该认证要求考生对 Linux 系统有一定的了解,并且能够熟练使用 Linux 命令来完成日常工作。

RHCE

红帽认证工程师属于 Linux 系统的中级水平认证,难度相对 RHCSA 认证来讲更大,而且要求考生必须已获得 RHCSA 认证。该认证适合有基础的 Linux 运维管理员,主要考察对常见服务的管理与配置能力。

红帽公司将 RHCE 8 版本的认证课程分为 3 门—RH124、RH134、RH294。RH124 涵盖了系统管理的基础知识,例如安装系统、用户管理、网络管理、远程管理以及软件管理等;RH134 涉及 Shell 自动化脚本的编写、磁盘管理、计划任务、系统安全维护等;RH294 主要介绍 Ansible 自动化管理工具的使用方法。

RHCA

红帽认证架构师是公认的 Linux 操作系统顶级认证,该认证考察的是考生对红帽卫星服务、红帽系统集群、红帽虚拟化、系统性能调优以及红帽云系统的安装搭建与维护能力。

考生需要在获得 RHCSA 与 RHCE 认证后再通过 5 门课程的考试才能获得 RHCA 认证,因此难度最大,备考时间最长,费用也最高(考试费约在 1.8 万元~ 2.1 万元人民币)。该认证考察的是考生对红帽卫星服务、红帽系统集群、红帽虚拟化、系统性能调优以及红帽云系统的安装搭建与维护能力。

下表为 2020 年最新版的 RHCA 考试课程。欲取得红帽 RHCA 认证,您必须通过以下任意 5 门认证考试。

考试代码认证名称
EX210红帽 OpenStack 认证系统管理员考试
EX220红帽混合云管理专业技能证书考试
EX236红帽混合云存储专业技能证书考试
EX248红帽认证 JBoss 管理员考试
EX280红帽平台即服务专业技能证书考试
EX318红帽认证虚拟化管理员考试
EX401红帽部署和系统管理专业技能证书考试
EX413红帽服务器固化专业技能证书考试
EX436红帽集群和存储管理专业技能证书考试
EX442红帽性能调优专业技能证书考试